[INFO] cloning repository https://github.com/maeln/Liar
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/maeln/Liar" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fmaeln%2FLiar", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fmaeln%2FLiar'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] fda321c675867942a7da67abbf08f529d4e0e32a
[INFO] checking maeln/Liar against try#fceb2de603f0807f9049222f3f612ed51ed8f9dc for pr-157576
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fmaeln%2FLiar" "/workspace/builds/worker-5-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-5-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/maeln/Liar
[INFO] finished tweaking git repo https://github.com/maeln/Liar
[INFO] tweaked toml for git repo https://github.com/maeln/Liar written to /workspace/builds/worker-5-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/maeln/Liar on toolchain fceb2de603f0807f9049222f3f612ed51ed8f9dc
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+fceb2de603f0807f9049222f3f612ed51ed8f9dc" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/maeln/Liar already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+fceb2de603f0807f9049222f3f612ed51ed8f9dc" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr] warning: Cargo.toml: `package.edition` is unspecified, defaulting to `2015` while the latest is `2024`
[INFO] [stderr] warning: `liar` (manifest) generated 1 warning
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:3e793bdf10248eb2ddbd6b0faebed8155c11b4589982e2893733958d93e8d540" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 12ca17983c6b7011661a06f5032ccb805d26c8ec52683a7e761c6299fe33115b
[INFO] running `Command { std: "docker" "start" "12ca17983c6b7011661a06f5032ccb805d26c8ec52683a7e761c6299fe33115b", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "12ca17983c6b7011661a06f5032ccb805d26c8ec52683a7e761c6299fe33115b" "/opt/rustwide/cargo-home/bin/cargo" "+fceb2de603f0807f9049222f3f612ed51ed8f9dc" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "12ca17983c6b7011661a06f5032ccb805d26c8ec52683a7e761c6299fe33115b", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-w" "/opt/rustwide/workdir" "--user" "0:0" "12ca17983c6b7011661a06f5032ccb805d26c8ec52683a7e761c6299fe33115b" "/opt/rustwide/cargo-home/bin/cargo" "+fceb2de603f0807f9049222f3f612ed51ed8f9dc" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr] warning: Cargo.toml: `package.edition` is unspecified, defaulting to `2015` while the latest is `2024`
[INFO] [stderr] warning: `liar` (manifest) generated 1 warning
[INFO] [stderr]     Checking libc v0.2.32
[INFO] [stderr]     Checking rand v0.3.17
[INFO] [stderr]     Checking liar v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] error: expected one of `!`, `(`, `)`, `+`, `,`, `::`, or `<`, found `:`
[INFO] [stdout]   --> src/game.rs:10:15
[INFO] [stdout]    |
[INFO] [stdout]  9 | pub enum GameMessage {
[INFO] [stdout]    |          ----------- while parsing this enum
[INFO] [stdout] 10 |     PlayerDid(who: Player, what: GameAction),    
[INFO] [stdout]    |                  ^ expected one of 7 possible tokens
[INFO] [stdout]    |
[INFO] [stdout]    = help: enum variants can be `Variant`, `Variant = <integer>`, `Variant(Type, ..., TypeN)` or `Variant { fields: Types }`
[INFO] [stdout] help: if you meant to write a path, use a double colon
[INFO] [stdout]    |
[INFO] [stdout] 10 |     PlayerDid(who:: Player, what: GameAction),    
[INFO] [stdout]    |                   +
[INFO] [stdout] help: if you meant to create a regular struct, use curly braces
[INFO] [stdout]    |
[INFO] [stdout] 10 -     PlayerDid(who: Player, what: GameAction),    
[INFO] [stdout] 10 +     PlayerDid { who: Player, what: GameAction },    
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: expected one of `!`, `(`, `)`, `+`, `,`, `::`, or `<`, found `:`
[INFO] [stdout]   --> src/game.rs:19:17
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub enum GameAction {
[INFO] [stdout]    |          ---------- while parsing this enum
[INFO] [stdout] 19 |     CardAction(card: Card, target: Player),
[INFO] [stdout]    |                    ^ expected one of 7 possible tokens
[INFO] [stdout]    |
[INFO] [stdout]    = help: enum variants can be `Variant`, `Variant = <integer>`, `Variant(Type, ..., TypeN)` or `Variant { fields: Types }`
[INFO] [stdout] help: if you meant to write a path, use a double colon
[INFO] [stdout]    |
[INFO] [stdout] 19 |     CardAction(card:: Card, target: Player),
[INFO] [stdout]    |                     +
[INFO] [stdout] help: if you meant to create a regular struct, use curly braces
[INFO] [stdout]    |
[INFO] [stdout] 19 -     CardAction(card: Card, target: Player),
[INFO] [stdout] 19 +     CardAction { card: Card, target: Player },
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: expected one of `,`, `=`, or `}`, found keyword `pub`
[INFO] [stdout]   --> src/game.rs:25:1
[INFO] [stdout]    |
[INFO] [stdout] 23 | }
[INFO] [stdout]    |  - expected one of `,`, `=`, or `}`
[INFO] [stdout] 24 |
[INFO] [stdout] 25 | pub trait GameIO {
[INFO] [stdout]    | ^^^ unexpected token
[INFO] [stdout]    |
[INFO] [stdout]    = help: enum variants can be `Variant`, `Variant = <integer>`, `Variant(Type, ..., TypeN)` or `Variant { fields: Types }`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: `enum` definition cannot be nested inside `enum`
[INFO] [stdout]   --> src/game.rs:18:5
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub enum GameAction {
[INFO] [stdout]    |     ^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: consider creating a new `enum` definition instead of nesting
[INFO] [stdout]    |
[INFO] [stdout] 18 - pub enum GameAction {
[INFO] [stdout] 19 -     CardAction(card: Card, target: Player),
[INFO] [stdout] 20 -     TakeGold,
[INFO] [stdout] 21 -     Kill(Player),
[INFO] [stdout] 22 -     Pass,
[INFO] [stdout] 23 - }
[INFO] [stdout] 24 - 
[INFO] [stdout] 25 - pub trait GameIO {
[INFO] [stdout] 18 + pub  trait GameIO {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: expected one of `,`, `=`, or `}`, found keyword `pub`
[INFO] [stdout]   --> src/game.rs:18:1
[INFO] [stdout]    |
[INFO] [stdout] 16 | }
[INFO] [stdout]    |  -
[INFO] [stdout]    |  |
[INFO] [stdout]    |  expected one of `,`, `=`, or `}`
[INFO] [stdout]    |  help: missing `,`
[INFO] [stdout] 17 |
[INFO] [stdout] 18 | pub enum GameAction {
[INFO] [stdout]    | ^^^ unexpected token
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: expected one of `(`, `,`, or `}`, found keyword `trait`
[INFO] [stdout]   --> src/game.rs:25:5
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub trait GameIO {
[INFO] [stdout]    |     ^^^^^ expected one of `(`, `,`, or `}`
[INFO] [stdout]    |
[INFO] [stdout]    = help: enum variants can be `Variant`, `Variant = <integer>`, `Variant(Type, ..., TypeN)` or `Variant { fields: Types }`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: expected one of `!`, `(`, `)`, `+`, `,`, `::`, or `<`, found `:`
[INFO] [stdout]   --> src/game.rs:10:15
[INFO] [stdout]    |
[INFO] [stdout]  9 | pub enum GameMessage {
[INFO] [stdout]    |          ----------- while parsing this enum
[INFO] [stdout] 10 |     PlayerDid(who: Player, what: GameAction),    
[INFO] [stdout]    |                  ^ expected one of 7 possible tokens
[INFO] [stdout]    |
[INFO] [stdout]    = help: enum variants can be `Variant`, `Variant = <integer>`, `Variant(Type, ..., TypeN)` or `Variant { fields: Types }`
[INFO] [stdout] help: if you meant to write a path, use a double colon
[INFO] [stdout]    |
[INFO] [stdout] 10 |     PlayerDid(who:: Player, what: GameAction),    
[INFO] [stdout]    |                   +
[INFO] [stdout] help: if you meant to create a regular struct, use curly braces
[INFO] [stdout]    |
[INFO] [stdout] 10 -     PlayerDid(who: Player, what: GameAction),    
[INFO] [stdout] 10 +     PlayerDid { who: Player, what: GameAction },    
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: expected one of `!`, `(`, `)`, `+`, `,`, `::`, or `<`, found `:`
[INFO] [stdout]   --> src/game.rs:19:17
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub enum GameAction {
[INFO] [stdout]    |          ---------- while parsing this enum
[INFO] [stdout] 19 |     CardAction(card: Card, target: Player),
[INFO] [stdout]    |                    ^ expected one of 7 possible tokens
[INFO] [stdout]    |
[INFO] [stdout]    = help: enum variants can be `Variant`, `Variant = <integer>`, `Variant(Type, ..., TypeN)` or `Variant { fields: Types }`
[INFO] [stdout] help: if you meant to write a path, use a double colon
[INFO] [stdout]    |
[INFO] [stdout] 19 |     CardAction(card:: Card, target: Player),
[INFO] [stdout]    |                     +
[INFO] [stdout] help: if you meant to create a regular struct, use curly braces
[INFO] [stdout]    |
[INFO] [stdout] 19 -     CardAction(card: Card, target: Player),
[INFO] [stdout] 19 +     CardAction { card: Card, target: Player },
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: expected one of `,`, `=`, or `}`, found keyword `pub`
[INFO] [stdout]   --> src/game.rs:25:1
[INFO] [stdout]    |
[INFO] [stdout] 23 | }
[INFO] [stdout]    |  - expected one of `,`, `=`, or `}`
[INFO] [stdout] 24 |
[INFO] [stdout] 25 | pub trait GameIO {
[INFO] [stdout]    | ^^^ unexpected token
[INFO] [stdout]    |
[INFO] [stdout]    = help: enum variants can be `Variant`, `Variant = <integer>`, `Variant(Type, ..., TypeN)` or `Variant { fields: Types }`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: `enum` definition cannot be nested inside `enum`
[INFO] [stdout]   --> src/game.rs:18:5
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub enum GameAction {
[INFO] [stdout]    |     ^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: consider creating a new `enum` definition instead of nesting
[INFO] [stdout]    |
[INFO] [stdout] 18 - pub enum GameAction {
[INFO] [stdout] 19 -     CardAction(card: Card, target: Player),
[INFO] [stdout] 20 -     TakeGold,
[INFO] [stdout] 21 -     Kill(Player),
[INFO] [stdout] 22 -     Pass,
[INFO] [stdout] 23 - }
[INFO] [stdout] 24 - 
[INFO] [stdout] 25 - pub trait GameIO {
[INFO] [stdout] 18 + pub  trait GameIO {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: expected one of `,`, `=`, or `}`, found keyword `pub`
[INFO] [stdout]   --> src/game.rs:18:1
[INFO] [stdout]    |
[INFO] [stdout] 16 | }
[INFO] [stdout]    |  -
[INFO] [stdout]    |  |
[INFO] [stdout]    |  expected one of `,`, `=`, or `}`
[INFO] [stdout]    |  help: missing `,`
[INFO] [stdout] 17 |
[INFO] [stdout] 18 | pub enum GameAction {
[INFO] [stdout]    | ^^^ unexpected token
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: expected one of `(`, `,`, or `}`, found keyword `trait`
[INFO] [stdout]   --> src/game.rs:25:5
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub trait GameIO {
[INFO] [stdout]    |     ^^^^^ expected one of `(`, `,`, or `}`
[INFO] [stdout]    |
[INFO] [stdout]    = help: enum variants can be `Variant`, `Variant = <integer>`, `Variant(Type, ..., TypeN)` or `Variant { fields: Types }`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: expected one of `)`, `,`, `@`, `if`, or `|`, found `:`
[INFO] [stdout]   --> src/game.rs:82:19
[INFO] [stdout]    |
[INFO] [stdout] 82 |             CardAction(card: Card, target: Player) => {self.handle_card_action(card, target, io);},
[INFO] [stdout]    |                            ^ expected one of `)`, `,`, `@`, `if`, or `|`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: expected one of `)`, `,`, `@`, `if`, or `|`, found `:`
[INFO] [stdout]   --> src/game.rs:82:19
[INFO] [stdout]    |
[INFO] [stdout] 82 |             CardAction(card: Card, target: Player) => {self.handle_card_action(card, target, io);},
[INFO] [stdout]    |                            ^ expected one of `)`, `,`, `@`, `if`, or `|`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find type `GameAction` in this scope
[INFO] [stdout]   --> src/game.rs:33:41
[INFO] [stdout]    |
[INFO] [stdout] 33 |     fn ask_player_action(p: &Player) -> GameAction;
[INFO] [stdout]    |                                         ^^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find type `GameAction` in this scope
[INFO] [stdout]   --> src/game.rs:37:50
[INFO] [stdout]    |
[INFO] [stdout] 37 |     fn ask_response_action(p: &Player) -> Option<GameAction>;
[INFO] [stdout]    |                                                  ^^^^^^^^^^ not found in this scope
[INFO] [stdout]    |
[INFO] [stdout] help: you might be missing a type parameter
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub trait GameIO<GameAction> {
[INFO] [stdout]    |                 ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `player::Player`
[INFO] [stdout]  --> src/main.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use player::Player;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `card::Card`
[INFO] [stdout]  --> src/main.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use card::Card;
[INFO] [stdout]   |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `ask_player_action` found for type parameter `T` in the current scope
[INFO] [stdout]   --> src/game.rs:79:19
[INFO] [stdout]    |
[INFO] [stdout] 77 |     pub fn do_round<T: GameIO>(&mut self, io: T) {
[INFO] [stdout]    |                     - method `ask_player_action` not found for this type parameter
[INFO] [stdout] 78 |         // first we ask the player the action he want to take.
[INFO] [stdout] 79 |         let action = io.ask_player_action(self.players[self.current_player]);
[INFO] [stdout]    |                         ^^^^^^^^^^^^^^^^^ this is an associated function, not a method
[INFO] [stdout]    |
[INFO] [stdout]    = note: found the following associated functions; to be used as methods, functions must have a `self` parameter
[INFO] [stdout] note: the candidate is defined in the trait `GameIO`
[INFO] [stdout]   --> src/game.rs:33:5
[INFO] [stdout]    |
[INFO] [stdout] 33 |     fn ask_player_action(p: &Player) -> GameAction;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: use associated function syntax instead
[INFO] [stdout]    |
[INFO] [stdout] 79 -         let action = io.ask_player_action(self.players[self.current_player]);
[INFO] [stdout] 79 +         let action = T::ask_player_action(self.players[self.current_player]);
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find type `GameAction` in this scope
[INFO] [stdout]   --> src/game.rs:33:41
[INFO] [stdout]    |
[INFO] [stdout] 33 |     fn ask_player_action(p: &Player) -> GameAction;
[INFO] [stdout]    |                                         ^^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find type `GameAction` in this scope
[INFO] [stdout]   --> src/game.rs:37:50
[INFO] [stdout]    |
[INFO] [stdout] 37 |     fn ask_response_action(p: &Player) -> Option<GameAction>;
[INFO] [stdout]    |                                                  ^^^^^^^^^^ not found in this scope
[INFO] [stdout]    |
[INFO] [stdout] help: you might be missing a type parameter
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub trait GameIO<GameAction> {
[INFO] [stdout]    |                 ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `player::Player`
[INFO] [stdout]  --> src/main.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use player::Player;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `card::Card`
[INFO] [stdout]  --> src/main.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use card::Card;
[INFO] [stdout]   |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `card`
[INFO] [stdout]   --> src/game.rs:92:42
[INFO] [stdout]    |
[INFO] [stdout] 92 |     fn handle_card_action<T: GameIO>(&self, card: Card, target: Player, io: T) {
[INFO] [stdout]    |                                             ^^^^ help: if this is intentional, prefix it with an underscore: `_card`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `target`
[INFO] [stdout]   --> src/game.rs:92:54
[INFO] [stdout]    |
[INFO] [stdout] 92 |     fn handle_card_action<T: GameIO>(&self, card: Card, target: Player, io: T) {
[INFO] [stdout]    |                                                         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_target`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `io`
[INFO] [stdout]   --> src/game.rs:92:70
[INFO] [stdout]    |
[INFO] [stdout] 92 |     fn handle_card_action<T: GameIO>(&self, card: Card, target: Player, io: T) {
[INFO] [stdout]    |                                                                         ^^ help: if this is intentional, prefix it with an underscore: `_io`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `target`
[INFO] [stdout]   --> src/game.rs:96:31
[INFO] [stdout]    |
[INFO] [stdout] 96 |     fn handle_kill_action(&self, target: Player) {
[INFO] [stdout]    |                                  ^^^^^^ help: if this is intentional, prefix it with an underscore: `_target`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0425, E0599.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0425`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `liar` (bin "liar") due to 10 previous errors; 6 warnings emitted
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stdout] error[E0599]: no method named `ask_player_action` found for type parameter `T` in the current scope
[INFO] [stdout]   --> src/game.rs:79:19
[INFO] [stdout]    |
[INFO] [stdout] 77 |     pub fn do_round<T: GameIO>(&mut self, io: T) {
[INFO] [stdout]    |                     - method `ask_player_action` not found for this type parameter
[INFO] [stdout] 78 |         // first we ask the player the action he want to take.
[INFO] [stdout] 79 |         let action = io.ask_player_action(self.players[self.current_player]);
[INFO] [stdout]    |                         ^^^^^^^^^^^^^^^^^ this is an associated function, not a method
[INFO] [stdout]    |
[INFO] [stdout]    = note: found the following associated functions; to be used as methods, functions must have a `self` parameter
[INFO] [stdout] note: the candidate is defined in the trait `GameIO`
[INFO] [stdout]   --> src/game.rs:33:5
[INFO] [stdout]    |
[INFO] [stdout] 33 |     fn ask_player_action(p: &Player) -> GameAction;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: use associated function syntax instead
[INFO] [stdout]    |
[INFO] [stdout] 79 -         let action = io.ask_player_action(self.players[self.current_player]);
[INFO] [stdout] 79 +         let action = T::ask_player_action(self.players[self.current_player]);
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `card`
[INFO] [stdout]   --> src/game.rs:92:42
[INFO] [stdout]    |
[INFO] [stdout] 92 |     fn handle_card_action<T: GameIO>(&self, card: Card, target: Player, io: T) {
[INFO] [stdout]    |                                             ^^^^ help: if this is intentional, prefix it with an underscore: `_card`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `target`
[INFO] [stdout]   --> src/game.rs:92:54
[INFO] [stdout]    |
[INFO] [stdout] 92 |     fn handle_card_action<T: GameIO>(&self, card: Card, target: Player, io: T) {
[INFO] [stdout]    |                                                         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_target`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `io`
[INFO] [stdout]   --> src/game.rs:92:70
[INFO] [stdout]    |
[INFO] [stdout] 92 |     fn handle_card_action<T: GameIO>(&self, card: Card, target: Player, io: T) {
[INFO] [stdout]    |                                                                         ^^ help: if this is intentional, prefix it with an underscore: `_io`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `target`
[INFO] [stdout]   --> src/game.rs:96:31
[INFO] [stdout]    |
[INFO] [stdout] 96 |     fn handle_kill_action(&self, target: Player) {
[INFO] [stdout]    |                                  ^^^^^^ help: if this is intentional, prefix it with an underscore: `_target`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0425, E0599.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0425`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `liar` (bin "liar" test) due to 10 previous errors; 6 warnings emitted
[INFO] running `Command { std: "docker" "inspect" "12ca17983c6b7011661a06f5032ccb805d26c8ec52683a7e761c6299fe33115b", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "12ca17983c6b7011661a06f5032ccb805d26c8ec52683a7e761c6299fe33115b", kill_on_drop: false }`
[INFO] [stdout] 12ca17983c6b7011661a06f5032ccb805d26c8ec52683a7e761c6299fe33115b
